home *** CD-ROM | disk | FTP | other *** search
- #include "out.h"
-
- MenuHandle appleMenu, fileMenu, patMenu, animMenu;
-
- enum {
- appleID = 1,
- fileID,
- patID,
- animID
- };
-
- enum {
- quitItem = 1
- };
-
- enum {
- pat1Item = 1,
- pat2Item,
- pat3Item,
- pat4Item,
- pat5Item,
- pat6Item,
- pat7Item,
- pat8Item
- };
-
- enum {
- startItem = 1,
- stopItem,
- forItem = 4,
- revItem,
- colorItem = 7,
- grayItem,
- resetItem
- };
-
- void setUpMenus()
- {
- InsertMenu( appleMenu = NewMenu( appleID, "\p\024" ), 0 );
- InsertMenu( fileMenu = NewMenu( fileID, "\pFile" ), 0 );
- InsertMenu( patMenu = NewMenu( patID, "\pDemo" ), 0 );
- InsertMenu( animMenu = NewMenu( animID, "\pAnimation" ), 0 );
-
- DrawMenuBar();
-
- AppendMenu( appleMenu, "\pAbout Out of This GWorld;(-" );
- AddResMenu( appleMenu, 'DRVR' );
-
- AppendMenu( fileMenu, "\pQuit/Q" );
- AppendMenu( patMenu, "\pColor Scale/1;Color Wheels/2;Color Rings/3;Color Gears/4;Color Curves/5;Color Balls/6;Color Wave/7;Color Text/8" );
- AppendMenu( animMenu, "\pStart Animation/A;Stop Animation/S;(-;Forward/F;Reverse/R;(-;Color Palette/C;Gray Palette/G;Reset Palette/R" );
- }
-
- void adjustMenus()
- {
- register WindowPeek wp = (WindowPeek)FrontWindow();
- short kind = wp ? wp->windowKind : 0;
- Boolean DA = kind < 0;
-
- enable( fileMenu, quitItem, true );
- enable( patMenu, pat1Item, gCurrentPat != pat1Item );
- enable( patMenu, pat2Item, gCurrentPat != pat2Item );
- enable( patMenu, pat3Item, gCurrentPat != pat3Item );
- enable( patMenu, pat4Item, gCurrentPat != pat4Item );
- enable( patMenu, pat5Item, gCurrentPat != pat5Item );
- enable( patMenu, pat6Item, gCurrentPat != pat6Item );
- enable( patMenu, pat7Item, gCurrentPat != pat7Item );
- enable( patMenu, pat8Item, gCurrentPat != pat8Item );
-
- enable( animMenu, startItem, gCurrentMove != START );
- enable( animMenu, stopItem, gCurrentMove != STOP );
- enable( animMenu, forItem, gCurrentDir != FORWARD );
- enable( animMenu, revItem, gCurrentDir != REVERSE );
- enable( animMenu, colorItem, gCurrentColor != COLOR );
- enable( animMenu, grayItem, gCurrentColor != GRAY );
- enable( animMenu, resetItem, true );
- }
-
- void enable( menu, item, ok )
- MenuHandle menu;
- {
- if (ok)
- EnableItem( menu, item );
- else
- DisableItem( menu, item );
- }
-
- void handleMenu( mSelect )
- long mSelect;
- {
- int menuID = HiWord( mSelect );
- int menuItem = LoWord( mSelect );
- GrafPtr savePort;
- Str255 name;
- RGBColor aColor;
-
- switch (menuID)
- {
- case appleID:
- if (menuItem == 1)
- {
- gCurrentPat = -1;
- defineColorPalette();
- updatePalette();
- createImage();
- drawImage();
- }
- else
- {
- GetPort( &savePort );
- GetItem( appleMenu, menuItem, name );
- OpenDeskAcc( name );
- SetPort( savePort );
- }
- break;
-
- case fileID:
- switch (menuItem)
- {
- case quitItem:
- cleanUp();
- break;
- }
- break;
-
- case patID:
- gCurrentPat = menuItem;
- createImage();
- drawImage();
- break;
-
- case animID:
- switch (menuItem)
- {
- case startItem:
- gCurrentMove = START;
- break;
- case stopItem:
- gCurrentMove = STOP;
- break;
- case forItem:
- gCurrentDir = FORWARD;
- break;
- case revItem:
- gCurrentDir = REVERSE;
- break;
- case colorItem:
- defineColorPalette();
- updatePalette();
- break;
- case grayItem:
- defineGrayPalette();
- updatePalette();
- break;
- case resetItem:
- if (gCurrentColor == COLOR || gCurrentPat == -1)
- defineColorPalette();
- else
- defineGrayPalette();
- updatePalette();
- break;
- }
- break;
- }
- HiliteMenu( 0 );
- }